<!-- HTML header for doxygen 1.8.8-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <!-- For Mobile Devices -->
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
        <meta name="generator" content="Doxygen 1.8.18"/>
        <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
        <title>HElib: helib::HyperCube&lt; T &gt; Class Template Reference</title>
        <!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
        <script type="text/javascript" src="dynsections.js"></script>
        <link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
        <link href="doxygen.css" rel="stylesheet" type="text/css" />
        <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
        <link href='https://fonts.googleapis.com/css?family=Roboto+Slab' rel='stylesheet' type='text/css'>
		<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,100;1,700&family=Merriweather&family=Merriweather+Sans&family=Open+Sans&family=Poppins:ital@1&family=Roboto:ital,wght@0,400;1,300;1,900&display=swap" rel="stylesheet"> 
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
        <link href="jquery.smartmenus.bootstrap.css" rel="stylesheet">
        <script type="text/javascript" src="jquery.smartmenus.js"></script>
        <!-- SmartMenus jQuery Bootstrap Addon -->
        <script type="text/javascript" src="jquery.smartmenus.bootstrap.js"></script>
        <!-- SmartMenus jQuery plugin -->
    </head>
    <body style="font-family: 'Merriweather', serif;">
        <nav class="navbar navbar-default" role="navigation">
            <div class="container">
                <div class="navbar-header">
                    <a class="navbar-brand">HElib Implementing Homomorphic Encryption</a>
                </div>
            </div>
        </nav>
        <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
            <div class="content" id="content">
                <div class="container">
                    <div class="row">
                        <div class="col-sm-12 panel " style="padding-bottom: 15px;">
                            <div style="margin-bottom: 15px;">
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespacehelib.html">helib</a></li><li class="navelem"><a class="el" href="classhelib_1_1_hyper_cube.html">HyperCube</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classhelib_1_1_hyper_cube-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">helib::HyperCube&lt; T &gt; Class Template Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>A multi-dimensional cube.  
 <a href="classhelib_1_1_hyper_cube.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="hypercube_8h_source.html">hypercube.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ab2b8a0cd2c244bc4ba33257ce4bc9819"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_hyper_cube.html#ab2b8a0cd2c244bc4ba33257ce4bc9819">HyperCube</a> (const <a class="el" href="classhelib_1_1_hyper_cube.html">HyperCube</a> &amp;other)=default</td></tr>
<tr class="separator:ab2b8a0cd2c244bc4ba33257ce4bc9819"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a957384beeec6fa0c24942cfab5cea98f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_hyper_cube.html#a957384beeec6fa0c24942cfab5cea98f">HyperCube</a> (const <a class="el" href="classhelib_1_1_cube_signature.html">CubeSignature</a> &amp;_sig)</td></tr>
<tr class="memdesc:a957384beeec6fa0c24942cfab5cea98f"><td class="mdescLeft">&#160;</td><td class="mdescRight">initialize a <a class="el" href="classhelib_1_1_hyper_cube.html" title="A multi-dimensional cube.">HyperCube</a> with a <a class="el" href="classhelib_1_1_cube_signature.html" title="Holds a vector of dimensions for a hypercube and some additional data.">CubeSignature</a>  <a href="classhelib_1_1_hyper_cube.html#a957384beeec6fa0c24942cfab5cea98f">More...</a><br /></td></tr>
<tr class="separator:a957384beeec6fa0c24942cfab5cea98f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4eaa2f56a430f7756a880ae022268673"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classhelib_1_1_hyper_cube.html">HyperCube</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_hyper_cube.html#a4eaa2f56a430f7756a880ae022268673">operator=</a> (const <a class="el" href="classhelib_1_1_hyper_cube.html">HyperCube</a>&lt; T &gt; &amp;other)</td></tr>
<tr class="memdesc:a4eaa2f56a430f7756a880ae022268673"><td class="mdescLeft">&#160;</td><td class="mdescRight">assignment: signatures must be the same  <a href="classhelib_1_1_hyper_cube.html#a4eaa2f56a430f7756a880ae022268673">More...</a><br /></td></tr>
<tr class="separator:a4eaa2f56a430f7756a880ae022268673"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62e2bf02d77489e5c5752673413bd4fe"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_hyper_cube.html#a62e2bf02d77489e5c5752673413bd4fe">operator==</a> (const <a class="el" href="classhelib_1_1_hyper_cube.html">HyperCube</a>&lt; T &gt; &amp;other) const</td></tr>
<tr class="memdesc:a62e2bf02d77489e5c5752673413bd4fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">equality testing: signatures must be the same  <a href="classhelib_1_1_hyper_cube.html#a62e2bf02d77489e5c5752673413bd4fe">More...</a><br /></td></tr>
<tr class="separator:a62e2bf02d77489e5c5752673413bd4fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a748f5a34fa6683e46f34602b35046814"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_hyper_cube.html#a748f5a34fa6683e46f34602b35046814">operator!=</a> (const <a class="el" href="classhelib_1_1_hyper_cube.html">HyperCube</a>&lt; T &gt; &amp;other) const</td></tr>
<tr class="separator:a748f5a34fa6683e46f34602b35046814"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a1d07c48de62dc384f9059c1dbd0625"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classhelib_1_1_cube_signature.html">CubeSignature</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_hyper_cube.html#a4a1d07c48de62dc384f9059c1dbd0625">getSig</a> () const</td></tr>
<tr class="memdesc:a4a1d07c48de62dc384f9059c1dbd0625"><td class="mdescLeft">&#160;</td><td class="mdescRight">const ref to signature  <a href="classhelib_1_1_hyper_cube.html#a4a1d07c48de62dc384f9059c1dbd0625">More...</a><br /></td></tr>
<tr class="separator:a4a1d07c48de62dc384f9059c1dbd0625"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aec3fa326e745e6909d1e2c554bf63747"><td class="memItemLeft" align="right" valign="top">NTL::Vec&lt; T &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_hyper_cube.html#aec3fa326e745e6909d1e2c554bf63747">getData</a> ()</td></tr>
<tr class="separator:aec3fa326e745e6909d1e2c554bf63747"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7384994fa402d0a503419df0f6671e41"><td class="memItemLeft" align="right" valign="top">const NTL::Vec&lt; T &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_hyper_cube.html#a7384994fa402d0a503419df0f6671e41">getData</a> () const</td></tr>
<tr class="memdesc:a7384994fa402d0a503419df0f6671e41"><td class="mdescLeft">&#160;</td><td class="mdescRight">read-only ref to data vector  <a href="classhelib_1_1_hyper_cube.html#a7384994fa402d0a503419df0f6671e41">More...</a><br /></td></tr>
<tr class="separator:a7384994fa402d0a503419df0f6671e41"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1e7a909ae48826dbf9e73d39e28311ef"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_hyper_cube.html#a1e7a909ae48826dbf9e73d39e28311ef">getSize</a> () const</td></tr>
<tr class="memdesc:a1e7a909ae48826dbf9e73d39e28311ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">total size of cube  <a href="classhelib_1_1_hyper_cube.html#a1e7a909ae48826dbf9e73d39e28311ef">More...</a><br /></td></tr>
<tr class="separator:a1e7a909ae48826dbf9e73d39e28311ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f68841b322376a580348abfb7ab0274"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_hyper_cube.html#a0f68841b322376a580348abfb7ab0274">getNumDims</a> () const</td></tr>
<tr class="memdesc:a0f68841b322376a580348abfb7ab0274"><td class="mdescLeft">&#160;</td><td class="mdescRight">number of dimensions  <a href="classhelib_1_1_hyper_cube.html#a0f68841b322376a580348abfb7ab0274">More...</a><br /></td></tr>
<tr class="separator:a0f68841b322376a580348abfb7ab0274"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33363ac14187bd07bcc4d153d5487f76"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_hyper_cube.html#a33363ac14187bd07bcc4d153d5487f76">getDim</a> (long d) const</td></tr>
<tr class="memdesc:a33363ac14187bd07bcc4d153d5487f76"><td class="mdescLeft">&#160;</td><td class="mdescRight">size of dimension d  <a href="classhelib_1_1_hyper_cube.html#a33363ac14187bd07bcc4d153d5487f76">More...</a><br /></td></tr>
<tr class="separator:a33363ac14187bd07bcc4d153d5487f76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acbe193a9dc0b13828b7446fb1572f6db"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_hyper_cube.html#acbe193a9dc0b13828b7446fb1572f6db">getProd</a> (long d) const</td></tr>
<tr class="memdesc:acbe193a9dc0b13828b7446fb1572f6db"><td class="mdescLeft">&#160;</td><td class="mdescRight">product of sizes of dimensions d, d+1, ...  <a href="classhelib_1_1_hyper_cube.html#acbe193a9dc0b13828b7446fb1572f6db">More...</a><br /></td></tr>
<tr class="separator:acbe193a9dc0b13828b7446fb1572f6db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8cddf7a9e157577df80565d50c42f8b5"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_hyper_cube.html#a8cddf7a9e157577df80565d50c42f8b5">getProd</a> (long from, long to) const</td></tr>
<tr class="memdesc:a8cddf7a9e157577df80565d50c42f8b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">product of sizes of dimensions from, from+1, ..., to-1  <a href="classhelib_1_1_hyper_cube.html#a8cddf7a9e157577df80565d50c42f8b5">More...</a><br /></td></tr>
<tr class="separator:a8cddf7a9e157577df80565d50c42f8b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a71758a62d2df3a5176a9317045f0d4ff"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_hyper_cube.html#a71758a62d2df3a5176a9317045f0d4ff">getCoord</a> (long i, long d) const</td></tr>
<tr class="memdesc:a71758a62d2df3a5176a9317045f0d4ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">get coordinate in dimension d of index i  <a href="classhelib_1_1_hyper_cube.html#a71758a62d2df3a5176a9317045f0d4ff">More...</a><br /></td></tr>
<tr class="separator:a71758a62d2df3a5176a9317045f0d4ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a992f756d67769032de90654c201cf1b7"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_hyper_cube.html#a992f756d67769032de90654c201cf1b7">addCoord</a> (long i, long d, long offset) const</td></tr>
<tr class="memdesc:a992f756d67769032de90654c201cf1b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">add offset to coordinate in dimension d of index i  <a href="classhelib_1_1_hyper_cube.html#a992f756d67769032de90654c201cf1b7">More...</a><br /></td></tr>
<tr class="separator:a992f756d67769032de90654c201cf1b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55bd39c9c1967976ddc46feb070c57bf"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_hyper_cube.html#a55bd39c9c1967976ddc46feb070c57bf">numSlices</a> (long d=1) const</td></tr>
<tr class="memdesc:a55bd39c9c1967976ddc46feb070c57bf"><td class="mdescLeft">&#160;</td><td class="mdescRight">number of slices  <a href="classhelib_1_1_hyper_cube.html#a55bd39c9c1967976ddc46feb070c57bf">More...</a><br /></td></tr>
<tr class="separator:a55bd39c9c1967976ddc46feb070c57bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72e0ba1f4d1afa67023e8d4297ff1aeb"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_hyper_cube.html#a72e0ba1f4d1afa67023e8d4297ff1aeb">sliceSize</a> (long d=1) const</td></tr>
<tr class="memdesc:a72e0ba1f4d1afa67023e8d4297ff1aeb"><td class="mdescLeft">&#160;</td><td class="mdescRight">size of one slice  <a href="classhelib_1_1_hyper_cube.html#a72e0ba1f4d1afa67023e8d4297ff1aeb">More...</a><br /></td></tr>
<tr class="separator:a72e0ba1f4d1afa67023e8d4297ff1aeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe571f26858da4a0ee94908b20497e8b"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_hyper_cube.html#afe571f26858da4a0ee94908b20497e8b">numCols</a> () const</td></tr>
<tr class="memdesc:afe571f26858da4a0ee94908b20497e8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">number of columns  <a href="classhelib_1_1_hyper_cube.html#afe571f26858da4a0ee94908b20497e8b">More...</a><br /></td></tr>
<tr class="separator:afe571f26858da4a0ee94908b20497e8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a558c114ad092dd3f3ea56f554e1d0c0e"><td class="memItemLeft" align="right" valign="top">T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_hyper_cube.html#a558c114ad092dd3f3ea56f554e1d0c0e">at</a> (long i)</td></tr>
<tr class="memdesc:a558c114ad092dd3f3ea56f554e1d0c0e"><td class="mdescLeft">&#160;</td><td class="mdescRight">reference to element at position i, with bounds check  <a href="classhelib_1_1_hyper_cube.html#a558c114ad092dd3f3ea56f554e1d0c0e">More...</a><br /></td></tr>
<tr class="separator:a558c114ad092dd3f3ea56f554e1d0c0e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac56487a22f0f9024f5056f64f26f8d0a"><td class="memItemLeft" align="right" valign="top">T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_hyper_cube.html#ac56487a22f0f9024f5056f64f26f8d0a">operator[]</a> (long i)</td></tr>
<tr class="memdesc:ac56487a22f0f9024f5056f64f26f8d0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">reference to element at position i, without bounds check  <a href="classhelib_1_1_hyper_cube.html#ac56487a22f0f9024f5056f64f26f8d0a">More...</a><br /></td></tr>
<tr class="separator:ac56487a22f0f9024f5056f64f26f8d0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9cd93ed835c30921fad60ca7d9850302"><td class="memItemLeft" align="right" valign="top">const T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_hyper_cube.html#a9cd93ed835c30921fad60ca7d9850302">at</a> (long i) const</td></tr>
<tr class="memdesc:a9cd93ed835c30921fad60ca7d9850302"><td class="mdescLeft">&#160;</td><td class="mdescRight">read-only reference to element at position i, with bounds check  <a href="classhelib_1_1_hyper_cube.html#a9cd93ed835c30921fad60ca7d9850302">More...</a><br /></td></tr>
<tr class="separator:a9cd93ed835c30921fad60ca7d9850302"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acd197efbc091aa3e83876666a7a6e2d1"><td class="memItemLeft" align="right" valign="top">const T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_hyper_cube.html#acd197efbc091aa3e83876666a7a6e2d1">operator[]</a> (long i) const</td></tr>
<tr class="memdesc:acd197efbc091aa3e83876666a7a6e2d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">read-only reference to element at position i, without bounds check  <a href="classhelib_1_1_hyper_cube.html#acd197efbc091aa3e83876666a7a6e2d1">More...</a><br /></td></tr>
<tr class="separator:acd197efbc091aa3e83876666a7a6e2d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb8bd0492411e47159fa502c2f1d61a8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_hyper_cube.html#afb8bd0492411e47159fa502c2f1d61a8">rotate1D</a> (long i, long k)</td></tr>
<tr class="memdesc:afb8bd0492411e47159fa502c2f1d61a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">rotate k positions along the i'th dimension  <a href="classhelib_1_1_hyper_cube.html#afb8bd0492411e47159fa502c2f1d61a8">More...</a><br /></td></tr>
<tr class="separator:afb8bd0492411e47159fa502c2f1d61a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaaf76a8d1f6db9658e14eeecbbe97cdb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_hyper_cube.html#aaaf76a8d1f6db9658e14eeecbbe97cdb">shift1D</a> (long i, long k)</td></tr>
<tr class="memdesc:aaaf76a8d1f6db9658e14eeecbbe97cdb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shift k positions along the i'th dimension with zero fill.  <a href="classhelib_1_1_hyper_cube.html#aaaf76a8d1f6db9658e14eeecbbe97cdb">More...</a><br /></td></tr>
<tr class="separator:aaaf76a8d1f6db9658e14eeecbbe97cdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename T&gt;<br />
class helib::HyperCube&lt; T &gt;</h3>

<p>A multi-dimensional cube. </p>
<p>Such an object is initialized with a <a class="el" href="classhelib_1_1_cube_signature.html" title="Holds a vector of dimensions for a hypercube and some additional data.">CubeSignature</a>: a reference to the signature is stored with the cube, and so the signature must remain alive during the lifetime of the cube, to prevent dangling pointers. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ab2b8a0cd2c244bc4ba33257ce4bc9819"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab2b8a0cd2c244bc4ba33257ce4bc9819">&#9670;&nbsp;</a></span>HyperCube() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classhelib_1_1_hyper_cube.html">helib::HyperCube</a>&lt; T &gt;::<a class="el" href="classhelib_1_1_hyper_cube.html">HyperCube</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classhelib_1_1_hyper_cube.html">HyperCube</a>&lt; T &gt; &amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a957384beeec6fa0c24942cfab5cea98f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a957384beeec6fa0c24942cfab5cea98f">&#9670;&nbsp;</a></span>HyperCube() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classhelib_1_1_hyper_cube.html">helib::HyperCube</a>&lt; T &gt;::<a class="el" href="classhelib_1_1_hyper_cube.html">HyperCube</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classhelib_1_1_cube_signature.html">CubeSignature</a> &amp;&#160;</td>
          <td class="paramname"><em>_sig</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>initialize a <a class="el" href="classhelib_1_1_hyper_cube.html" title="A multi-dimensional cube.">HyperCube</a> with a <a class="el" href="classhelib_1_1_cube_signature.html" title="Holds a vector of dimensions for a hypercube and some additional data.">CubeSignature</a> </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a992f756d67769032de90654c201cf1b7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a992f756d67769032de90654c201cf1b7">&#9670;&nbsp;</a></span>addCoord()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classhelib_1_1_hyper_cube.html">helib::HyperCube</a>&lt; T &gt;::addCoord </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>d</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>offset</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>add offset to coordinate in dimension d of index i </p>

</div>
</div>
<a id="a558c114ad092dd3f3ea56f554e1d0c0e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a558c114ad092dd3f3ea56f554e1d0c0e">&#9670;&nbsp;</a></span>at() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">T&amp; <a class="el" href="classhelib_1_1_hyper_cube.html">helib::HyperCube</a>&lt; T &gt;::at </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>i</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>reference to element at position i, with bounds check </p>

</div>
</div>
<a id="a9cd93ed835c30921fad60ca7d9850302"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9cd93ed835c30921fad60ca7d9850302">&#9670;&nbsp;</a></span>at() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const T&amp; <a class="el" href="classhelib_1_1_hyper_cube.html">helib::HyperCube</a>&lt; T &gt;::at </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>i</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>read-only reference to element at position i, with bounds check </p>

</div>
</div>
<a id="a71758a62d2df3a5176a9317045f0d4ff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a71758a62d2df3a5176a9317045f0d4ff">&#9670;&nbsp;</a></span>getCoord()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classhelib_1_1_hyper_cube.html">helib::HyperCube</a>&lt; T &gt;::getCoord </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>d</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>get coordinate in dimension d of index i </p>

</div>
</div>
<a id="aec3fa326e745e6909d1e2c554bf63747"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aec3fa326e745e6909d1e2c554bf63747">&#9670;&nbsp;</a></span>getData() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">NTL::Vec&lt;T&gt;&amp; <a class="el" href="classhelib_1_1_hyper_cube.html">helib::HyperCube</a>&lt; T &gt;::getData </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>read/write ref to the data vector. Note that the length of data is fixed upon construction, so it cannot be changed through this ref. </p>

</div>
</div>
<a id="a7384994fa402d0a503419df0f6671e41"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7384994fa402d0a503419df0f6671e41">&#9670;&nbsp;</a></span>getData() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const NTL::Vec&lt;T&gt;&amp; <a class="el" href="classhelib_1_1_hyper_cube.html">helib::HyperCube</a>&lt; T &gt;::getData </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>read-only ref to data vector </p>

</div>
</div>
<a id="a33363ac14187bd07bcc4d153d5487f76"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a33363ac14187bd07bcc4d153d5487f76">&#9670;&nbsp;</a></span>getDim()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classhelib_1_1_hyper_cube.html">helib::HyperCube</a>&lt; T &gt;::getDim </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>d</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>size of dimension d </p>

</div>
</div>
<a id="a0f68841b322376a580348abfb7ab0274"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0f68841b322376a580348abfb7ab0274">&#9670;&nbsp;</a></span>getNumDims()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classhelib_1_1_hyper_cube.html">helib::HyperCube</a>&lt; T &gt;::getNumDims </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>number of dimensions </p>

</div>
</div>
<a id="acbe193a9dc0b13828b7446fb1572f6db"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acbe193a9dc0b13828b7446fb1572f6db">&#9670;&nbsp;</a></span>getProd() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classhelib_1_1_hyper_cube.html">helib::HyperCube</a>&lt; T &gt;::getProd </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>d</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>product of sizes of dimensions d, d+1, ... </p>

</div>
</div>
<a id="a8cddf7a9e157577df80565d50c42f8b5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8cddf7a9e157577df80565d50c42f8b5">&#9670;&nbsp;</a></span>getProd() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classhelib_1_1_hyper_cube.html">helib::HyperCube</a>&lt; T &gt;::getProd </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>from</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>to</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>product of sizes of dimensions from, from+1, ..., to-1 </p>

</div>
</div>
<a id="a4a1d07c48de62dc384f9059c1dbd0625"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4a1d07c48de62dc384f9059c1dbd0625">&#9670;&nbsp;</a></span>getSig()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classhelib_1_1_cube_signature.html">CubeSignature</a>&amp; <a class="el" href="classhelib_1_1_hyper_cube.html">helib::HyperCube</a>&lt; T &gt;::getSig </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>const ref to signature </p>

</div>
</div>
<a id="a1e7a909ae48826dbf9e73d39e28311ef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1e7a909ae48826dbf9e73d39e28311ef">&#9670;&nbsp;</a></span>getSize()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classhelib_1_1_hyper_cube.html">helib::HyperCube</a>&lt; T &gt;::getSize </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>total size of cube </p>

</div>
</div>
<a id="afe571f26858da4a0ee94908b20497e8b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afe571f26858da4a0ee94908b20497e8b">&#9670;&nbsp;</a></span>numCols()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classhelib_1_1_hyper_cube.html">helib::HyperCube</a>&lt; T &gt;::numCols </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>number of columns </p>

</div>
</div>
<a id="a55bd39c9c1967976ddc46feb070c57bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a55bd39c9c1967976ddc46feb070c57bf">&#9670;&nbsp;</a></span>numSlices()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classhelib_1_1_hyper_cube.html">helib::HyperCube</a>&lt; T &gt;::numSlices </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>d</em> = <code>1</code></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>number of slices </p>

</div>
</div>
<a id="a748f5a34fa6683e46f34602b35046814"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a748f5a34fa6683e46f34602b35046814">&#9670;&nbsp;</a></span>operator!=()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classhelib_1_1_hyper_cube.html">helib::HyperCube</a>&lt; T &gt;::operator!= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classhelib_1_1_hyper_cube.html">HyperCube</a>&lt; T &gt; &amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a4eaa2f56a430f7756a880ae022268673"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4eaa2f56a430f7756a880ae022268673">&#9670;&nbsp;</a></span>operator=()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classhelib_1_1_hyper_cube.html">HyperCube</a>&amp; <a class="el" href="classhelib_1_1_hyper_cube.html">helib::HyperCube</a>&lt; T &gt;::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classhelib_1_1_hyper_cube.html">HyperCube</a>&lt; T &gt; &amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>assignment: signatures must be the same </p>

</div>
</div>
<a id="a62e2bf02d77489e5c5752673413bd4fe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a62e2bf02d77489e5c5752673413bd4fe">&#9670;&nbsp;</a></span>operator==()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classhelib_1_1_hyper_cube.html">helib::HyperCube</a>&lt; T &gt;::operator== </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classhelib_1_1_hyper_cube.html">HyperCube</a>&lt; T &gt; &amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>equality testing: signatures must be the same </p>

</div>
</div>
<a id="ac56487a22f0f9024f5056f64f26f8d0a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac56487a22f0f9024f5056f64f26f8d0a">&#9670;&nbsp;</a></span>operator[]() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">T&amp; <a class="el" href="classhelib_1_1_hyper_cube.html">helib::HyperCube</a>&lt; T &gt;::operator[] </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>i</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>reference to element at position i, without bounds check </p>

</div>
</div>
<a id="acd197efbc091aa3e83876666a7a6e2d1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acd197efbc091aa3e83876666a7a6e2d1">&#9670;&nbsp;</a></span>operator[]() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const T&amp; <a class="el" href="classhelib_1_1_hyper_cube.html">helib::HyperCube</a>&lt; T &gt;::operator[] </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>i</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>read-only reference to element at position i, without bounds check </p>

</div>
</div>
<a id="afb8bd0492411e47159fa502c2f1d61a8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afb8bd0492411e47159fa502c2f1d61a8">&#9670;&nbsp;</a></span>rotate1D()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classhelib_1_1_hyper_cube.html">helib::HyperCube</a>&lt; T &gt;::rotate1D </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>k</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>rotate k positions along the i'th dimension </p>

</div>
</div>
<a id="aaaf76a8d1f6db9658e14eeecbbe97cdb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaaf76a8d1f6db9658e14eeecbbe97cdb">&#9670;&nbsp;</a></span>shift1D()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classhelib_1_1_hyper_cube.html">helib::HyperCube</a>&lt; T &gt;::shift1D </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>k</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Shift k positions along the i'th dimension with zero fill. </p>

</div>
</div>
<a id="a72e0ba1f4d1afa67023e8d4297ff1aeb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a72e0ba1f4d1afa67023e8d4297ff1aeb">&#9670;&nbsp;</a></span>sliceSize()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename T &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">long <a class="el" href="classhelib_1_1_hyper_cube.html">helib::HyperCube</a>&lt; T &gt;::sliceSize </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>d</em> = <code>1</code></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>size of one slice </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>/HElib/include/helib/<a class="el" href="hypercube_8h_source.html">hypercube.h</a></li>
<li>/HElib/src/<a class="el" href="hypercube_8cpp.html">hypercube.cpp</a></li>
</ul>
</div><!-- contents -->
<!-- HTML footer for doxygen 1.8.8-->
<!-- start footer part -->
</div>
</div>
</div>
</div>
</div>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
        <script type="text/javascript" src="doxy-boot.js"></script>
</html>
